﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Karaoke;
using Entidades.Generico;
using Negocio.Karaoke;

public partial class Karaoke_Gestion_frmMantenimientoEquipo : System.Web.UI.Page
{


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            GenUsuario usuario = (GenUsuario)Session["Usuario"];
            
            if (usuario == null || usuario.Usuario == null || usuario.Usuario.Length == 0)
            {
                Response.Redirect("~/Login.aspx?pag=frmMantenimientoEquipo.aspx");
            }
            else
            {

                if (usuario.Perfil.Equals("Técnico"))
                {
                    lblDatosUsuaio.Text = usuario.Nombre + " - " + usuario.Perfil + " (" + usuario.Localidad + ")";
                    ViewState["usuario"] = usuario.Usuario;
                    CargarEquipos();
                    CargarEstado();
                    
                    string msgexito = Request["msgexito"];
                    if(msgexito!=null && msgexito.Length>0){
                        lblExito.Text = msgexito;
                    }
                }
                else
                    Response.Redirect("~/Login.aspx?pag=frmMantenimientoEquipo.aspx&error=Usuario no tiene permisos para acceder al módulo");

            }

        }        
    }


    protected void Nombre_GridView_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
    {
        GridView grilla = (GridView)sender;
        var _with1 = grilla;
        _with1.PageIndex = e.NewPageIndex;

        List<KarEquipo> lista = KarEquipoBLL.ListarEquipos();
        grvEquipos.DataSource = lista;
        grvEquipos.DataBind();

    }

    protected void grvEquipo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataItem != null)
        {
            ImageButton btnActualizar = (ImageButton)e.Row.FindControl("btnActualizar");

            string estado = DataBinder.GetPropertyValue(e.Row.DataItem, "Estado").ToString();
            if (estado == "No revisado")
            {
                btnActualizar.ImageUrl = "~/Images/botones/fileEdit.gif";
                btnActualizar.AlternateText = "Revisar";
                btnActualizar.ToolTip = "Revisar";
            }
        }
    }
    
    protected void RevisarEquipo_OnClick(object sender, CommandEventArgs e)
    {
        string codigo = (e.CommandName == null) ? "" : e.CommandName.ToString();
        string estado = (e.CommandArgument == null) ? "" : e.CommandArgument.ToString();
        if (estado == "No revisado")
        {
            lblCodEquipo.Text = codigo;
            pnlMantenimiento.Visible = true;
        }
        else
        {
            pnlMantenimiento.Visible = false;
        }
        lblExito.Text = "";
        lblError.Text = "";
    }

    void CargarEquipos()
    {
        List<KarEquipo> lista = KarEquipoBLL.ListarEquipos();
        grvEquipos.DataSource = lista;
        grvEquipos.DataBind();
    }

    void CargarEstado()
    {
        ddlEstado.DataSource = KarEquipoBLL.ListarEstados(1);
        ddlEstado.DataValueField = "ID";
        ddlEstado.DataTextField = "NOMBRE";
        ddlEstado.DataBind();
    }

    void Limpiar()
    {
        lblCodEquipo.Text = "";
        ddlEstado.SelectedIndex = -1;
        txtObservacion.Text = "";
        pnlMantenimiento.Visible = false;
        lblError.Text = "";
    }

    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        int resultado = 0;
        KarMantenimientoEquipo obj = new KarMantenimientoEquipo();
        
        try 
        {
            if (txtObservacion.Text == "")
            {
                lblError.Text = "Favor de ingresar alguna observación";
            }
            else
            {
                obj.CodEquipo = lblCodEquipo.Text;
                obj.idEstado = Convert.ToInt16(ddlEstado.SelectedValue);
                obj.Observacion = txtObservacion.Text;
                obj.usuario = (string)ViewState["usuario"];
                resultado = KarEquipoBLL.RegistrarInforme(obj);

                lblExito.Text = "Se registró satisfactoriamente el mantenimiento del equipo " + lblCodEquipo.Text + 
                    " con Cod. Mantenimiento " + resultado;
                if (obj.idEstado == 3)
                {
                    Session["CodMantenimiento"] = resultado;
                    Session["Observacion"] = txtObservacion.Text;
                    Response.Redirect("~/Karaoke/Gestion/frmSolcitudCambioEquipo.aspx");
                }
                CargarEquipos();
                Limpiar();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
       
    }

    protected void btnConsultarInformes_Click(object sender, EventArgs e)
    {
        Session["CodEquipo"] = lblCodEquipo.Text;
        Response.Redirect("frmHistorialMantenimiento.aspx");
    }
    
}